<?php
/**
 * 
 * @author Natanael
 * modelo de registro compania de carpetas
 * 
 */

class Mcompaniacarpetas extends model
{
	private $_nameTable='GW_ListCompany';
	
	function __construct()
	{ 
		parent::Model();
		$this->load->database();
	}
	
    public function LoadStatusDocumento($start = false, $offset = false, $sortname = false, $sortorder = false) 
    {
	    $this->db->where('IdStatus !=', 5);
			
	    if($offset != false)
		    $this->db->limit($offset, $start);

		if($sortname != false && $sortorder != false) 
			 $this->db->order_by($sortname, $sortorder);
				  
		      $result = $this->db->get($this->_nameTable);
	
			return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	public function loadRegistroNombreByWhere($where) 
    {
       		 $result = $this->db->get_where($this->_nameTable, $where);
	
			 return $this->GetProcesosArrayFromQueryResult($result);
    } 
    
    public function cantidadRegistro($where) 
    {
         	$result = $this->db->get_where($this->_nameTable, $where);
         	return $result->num_rows();
         	
    }
	
	private function GetProcesosArrayFromQueryResult($result) 
	{
			if ($result->num_rows() == 0)
			{
				return false;
			}	

			$proceso_arr = array();

			foreach ($result->result() as $record) 
			{
				$proceso_arr[]=new GW_ListCompany($record);
			
			}
			
			return $proceso_arr;
    }
    
    public function add($array){
    	
    	$this->db->insert($this->_nameTable, $array);
	    return $this->LoadStatusDocumento($this->db->insert_id());
	   
    }
    
    public function edit($array,$id){
    	
    	$this->db->where('id', $id);
        $this->db->update($this->_nameTable, $array);
    
    }
   
   public function LoadEtapaById($id_etapa) 
   {
			$qresult = $this->db->get_where($this->_nameTable, array('id'=>$id_etapa));

			if ($qresult->num_rows() == 0)
				return false;
	
			return new GW_ListCompany($qresult->row());
    }
	
   public function delete($id)
   {
     $this->db->where('id', $id);
     $this->db->delete($this->_nameTable); 
     return true;
   }
		
}

class GW_ListCompany{
	
	private $id;
	private $referencia;
	private $usuario;
	private $date;
	private $status;
	private $type = 0;
	private $apellido = 0;
	private $idioma = 0;

	function __construct($obj_proceso)
	{
		$this->setId($obj_proceso->id);
		$this->setReferenccia($obj_proceso->Referencia);
		$this->setIdUsuario($obj_proceso->IdUsuario);
		$this->setDate($obj_proceso->FechaInicio);
		$this->setIdstatus($obj_proceso->IdStatus);
		$this->setType($obj_proceso->type);
		$this->setApellido($obj_proceso->IdApellido);
		$this->setIdIdioma($obj_proceso->Id_Idioma);
	}
		
	
	function setId($idproceso)
	{
		$this->id=$idproceso;
	}
	
	function getId()
	{
		return $this->id;
	}
	
	function setReferenccia($idproceso)
	{
		$this->referencia=$idproceso;
	}
	
	function getReferenccia()
	{
		return $this->referencia;
	}
	

	function setIdUsuario($idproceso)
	{
		$this->usuario=$idproceso;
	}
	
	function getIdUsuario()
	{
		return $this->usuario;
	}
	
	
	function setDate($idproceso)
	{
		$this->date=$idproceso;
	}
	
	function getDate()
	{
		return $this->date;
	}	
	
	function setIdstatus($idproceso)
	{
		$this->status=$idproceso;
	}
	
	function getIdstatus()
	{
		return $this->status;
	}	
	
	function setType($idproceso)
	{
		$this->type=$idproceso;
	}
	
	function getType()
	{
		return $this->type;
	}	
	
	function setApellido($idproceso)
	{
		$this->apellido=$idproceso;
	}
	
	function getApellido()
	{
		return $this->apellido;
	}
	
	function setIdIdioma($idproceso)
	{
		$this->idioma=$idproceso;
	}
	
	function getIdIdioma()
	{
		return $this->idioma;
	}
	
}